ComponentManager
Управляет компонентами и позволяет вам создавать собственные компоненты.
ПРИМЕЧАНИЕ: Компонент — это то, что может взаимодействовать с компьютером, а interactable — интерактивный элемент со скриптом в вашем аддоне.
Функции
toComponent
:::danger[Это важно!] У нас есть система банов в нашем моде. Для того чтобы аддоны работали с ней, все interactables и компоненты ДОЛЖНЫ использовать эту функцию.
Если вы этого не сделаете и мы это заметим, мы предупредим вас об этой проблеме. Игнорирование этого предупреждения приведет к БАНУ аддона. :::
sm.scrapcomputers.componentManager.toComponent( classData, componentType, isAComponent, automaticRefreshGen )
Подключает ваш класс, чтобы вы могли легко создавать компоненты. Дл я разработчиков аддонов это обязательно.
- Для компонентов: Все переменные используются, а
isAComponent
должен быть true. - Для interactables: То же самое, что и для компонентов, но
componentType
должен быть nil, аisAComponent
— false.
Аргументы:
- classData [ ShapeClass ] Класс компонента или interactable.
- componentType [ string ] Тип компонента. Убедитесь, что он не конфликтует с другими аддонами или самим модом.
- isAComponent [ boolean ] Установите это значение в true, если ваш interactable является компонентом!
- automaticRefreshGen [ boolean? ] Если true или nil, то генерируется функция onRefresh (По умолчанию true).
Если вы не знаете, как пользоваться этой функцией, то это краткое руководство поможет вам.
Добавьте эти строчки:
-- Для компонентов
sm.scrapcomputers.componentManager.toComponent( yourClass, "YourComponentType", true )
-- Для interactables
sm.scrapcomputers.componentManager.toComponent( yourClass, "YourComponentType", false )
-- НЕ ПИШИТЕ НИКАКОЙ КОД НИЖЕ!!!
getComponents
sm.scrapcomputers.componentManager.getComponents( componentType, interactable, viaChildren, flags, getPrivateData )
Получает все подключенные компоненты.
Аргументы:
- componentType [ string ] Тип компонента.
- interactable [ interactable ] Interactable ??.
- viaChildren [ boolean ] Нужно ли получать компоненты через дочерние или родительские компоненты.
- flags [ integer? ] Флаги для получения компонентов.
- getPrivateData [ boolean? ] Если вы установите для этого параметра значение true, вы получите данные из компонентов, которые обычно недоступны для использования в API компьютера.
Возвращает:
- [ table ] Таблица всех подключенных компонентов.